Klavesove zkratky tlacitek

Otázka od: Matejcek Petr

29. 6. 2004 19:40

dd,
    potreboval bych ovladat tlacitka stiskem jedne klavesy napr F1, F2,
ESC .. (ne pouziti ALT + podtrzeny znak ).
je to mozne ? kde se to konfiguruje ?

dale bych rad zarovnal text tlacitka doleva ne na stred a take se mi to
nepodarilo nikde najit
 poradi nekdo ?

diky PM


Odpovedá: horky@cominn.cz

30. 6. 2004 7:21

> From: Matejcek Petr [mailto:konference@crhov.komfi.cz]
> Sent: Tuesday, June 29, 2004 8:36 PM
> potreboval bych ovladat tlacitka stiskem jedne klavesy
> napr F1, F2,
> ESC .. (ne pouziti ALT + podtrzeny znak ).

Podivej se u tlacitka na property Action.
Nadefinujes si akce, ke kterym priradis klavesovou zkratku, hint, ikonu, ....
a tuto akci pak priradis k tlacitku, menu item, popup menu.
V konferenci to bylo jiz vicekrat a vsichni si pochvalovali  

> dale bych rad zarovnal text tlacitka doleva ne na stred

To si budes muset stahnout nebo vyrobit nejakou komponentu. Mrkni se na
Torry.net, v sekci Buttons je toho dost, i free a se zdroji, takze se muzes
poucit, jak to delaji jinde. Muj favorit je LBButtons.

--
S pozdravem Karel Horky, D7, FB 1.0.3, IBX 7.08, WXP SP1
[mailto:horky@cominn.cz]

Odpovedá: Matejcek Petr

30. 6. 2004 8:13

jo property action tam je ale nedava mi nic na vyber a kdyz do ni neco
napisu tak to vyhodi chybu
jak se nadefinuje akce aby se mi dostala do vyberu toho tlacitka?

doky PM

horky@cominn.cz napsal(a):

>Podivej se u tlacitka na property Action.
>Nadefinujes si akce, ke kterym priradis klavesovou zkratku, hint, ikonu, ....
>a tuto akci pak priradis k tlacitku, menu item, popup menu.
>V konferenci to bylo jiz vicekrat a vsichni si pochvalovali  
>
>
>
>--
>S pozdravem Karel Horky, D7, FB 1.0.3, IBX 7.08, WXP SP1
>[mailto:horky@cominn.cz]
>
>
>
>
>


Odpovedá: Zdenek Brejsa

30. 6. 2004 8:48

> jo property action tam je ale nedava mi nic na vyber a kdyz do ni neco
> napisu tak to vyhodi chybu
> jak se nadefinuje akce aby se mi dostala do vyberu toho tlacitka?
>
musis pridat na formular nevizualni komponentu TActionList, do ni pridat
potrebne akce a pak do te property action jednu z nich vybrat.

Zdenek Brejsa - HJ-SOFT


Odpovedá: Matejcek Petr

30. 6. 2004 10:40

Ok to je ono jen bych jeste potreboval nejak rozlisit tlacitka na
ruznych zalozkach PageControl
rekneme ze tlacitka na zalozce 1 pouzivaji zkratky F1-F12 a jina
tlacitka na zalozce 2 na stejnem formulari maji pouzivat take zkratky
F1-F12 ale potom spoustet neco jineho
proste to nejak odlisit podle toho ktera zalozka je aktivni ale nenasel
jsem u TActionList polozku enable ta je az u jednotlivych akci ale to se
mi zda dost krkolomne  

diky PM

Zdenek Brejsa napsal(a):

>>jo property action tam je ale nedava mi nic na vyber a kdyz do ni neco
>>napisu tak to vyhodi chybu
>>jak se nadefinuje akce aby se mi dostala do vyberu toho tlacitka?
>>
>>
>>
>musis pridat na formular nevizualni komponentu TActionList, do ni pridat
>potrebne akce a pak do te property action jednu z nich vybrat.
>
>Zdenek Brejsa - HJ-SOFT
>
>
>
>
>
>


Odpovedá: Jiri Foldyna

30. 6. 2004 10:59

> Ok to je ono jen bych jeste potreboval nejak rozlisit tlacitka na
> ruznych zalozkach PageControl
> rekneme ze tlacitka na zalozce 1 pouzivaji zkratky F1-F12 a jina
> tlacitka na zalozce 2 na stejnem formulari maji pouzivat take zkratky
> F1-F12 ale potom spoustet neco jineho
> proste to nejak odlisit podle toho ktera zalozka je aktivni
> ale nenasel
> jsem u TActionList polozku enable ta je az u jednotlivych
> akci ale to se
> mi zda dost krkolomne  

Asi to jednoduse neobejdes. Ja to resim takto:

Ve FormCreate si odlozim klavesove zkratky do tagu akce

procedure TF_ProjTEF.CopyShorcutsToTag;
var
  i : integer;
begin
  for i := 0 to alProj.ActionCount - 1 do
  begin
    (alProj.Actions[i] as TAction).Tag := (alProj.Actions[i] as
TAction).ShortCut;
  end;
end;

Akce pro kazdou zalozku zarad do jine kategorie a pri prepnuti na zalozku
(ja to delam v OnChange pagecontrolu) zkopiruj u vsech akci dane kategorie
shortcuty z tagu zpatky. U ostatnich akci shortcuty vynuluj.

procedure TF_ProjTEF.RestoreShortCuts(Ctg : string);
var
  i : integer;
begin
  for i := 0 to alProj.ActionCount - 1 do
  begin
    if (alProj.Actions[i] as TAction).Category = Ctg then
    begin
      (alProj.Actions[i] as TAction).ShortCut := (alProj.Actions[i] as
TAction).Tag;
    end;
  end;
end;

procedure TF_ProjTEF.ClearShortCuts(Ctg : string);
var
  i : integer;
begin
  for i := 0 to alProj.ActionCount - 1 do
  begin
    if (alProj.Actions[i] as TAction).Category = Ctg then
    begin
      (alProj.Actions[i] as TAction).ShortCut := 0;
    end;
  end;
end;

Zdravim

Jiri Foldyna
mailto:jiri.f@avizo.cz


Odpovedá: Zdenek Brejsa

30. 6. 2004 11:44

> Ok to je ono jen bych jeste potreboval nejak rozlisit tlacitka na
> ruznych zalozkach PageControl
> rekneme ze tlacitka na zalozce 1 pouzivaji zkratky F1-F12 a jina
> tlacitka na zalozce 2 na stejnem formulari maji pouzivat take zkratky
> F1-F12 ale potom spoustet neco jineho
> proste to nejak odlisit podle toho ktera zalozka je aktivni ale nenasel
> jsem u TActionList polozku enable ta je az u jednotlivych akci ale to se
> mi zda dost krkolomne  
>
Ja to resim pres OnUpdate - mohlo by to vypadat asi takhle:
with TAction(Sender) do
    Enabled := PageControl.ActivePage.Name = Category

pak staci do vlastnosti akce Category uvest jmeno odpovidajici zalozky a je
to

Zdenek Brejsa - HJ-SOFT


Odpovedá: Jiri Foldyna

30. 6. 2004 12:23

> Ja to resim pres OnUpdate - mohlo by to vypadat asi takhle:
> with TAction(Sender) do
> Enabled := PageControl.ActivePage.Name = Category
>
> pak staci do vlastnosti akce Category uvest jmeno
> odpovidajici zalozky a je
> to

Nejsem si uplne jisty, jestli to je to prave orechove. Toto sice disabluje
akci, ale i disablovana akce obcas sezere prirazeny shortcut - na pravidlo
jsem neprisel, mozna to zalezi na poradi akci v ActionListu (D5 Enterprise).
Proto pouzivam dynamicke meneni shortcutu, enable/disable akci pouzivam pro
jejich fyzicke znedostupneni (fuj, to je hnusne slovo  .

Zdravim

Jiri Foldyna
mailto:jiri.f@avizo.cz